package m.html.element.other;

import manage.util.DictionaryUtil;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

public class DisplayItem {
	private String title;
	private String value;
	private String parentValue;
	private DisplayItem() {}
	public static DisplayItem value(String value,String title){
		return value(value,title,"");
	}
	public static DisplayItem value(String value,String title,String parentValue) {
		DisplayItem item=new DisplayItem();
		item.value=value;
		item.title=title;
		item.parentValue=parentValue;
		return item;
	}
	/**
	 * 通过字典转换成 List<DisplayItem>
	 *  dictType
	 * 
	 */
	public static List<DisplayItem> toList(String dictType){
		Map<String,String> map=DictionaryUtil.get(dictType);
		List<DisplayItem> ds= new ArrayList<>();
		for(String key : map.keySet()) {
			ds.add(value(key,map.get(key).split("\\|")[0]));
		}
		return ds;
	}
	/**
	 * 转换显示项 单数为值,双数为名称
	 *  vs
	 * 
	 */
	public static List<DisplayItem> to(String... vs){
		List<DisplayItem> ds= new ArrayList<>();
		for(int i=0;i<vs.length;i+=2) {
			if(i+2<=vs.length) {
				ds.add(DisplayItem.value(vs[i], vs[i+1]));
			}
		}
		return ds;
	}

	/**
	 * List<DisplayItem> 转换成标题数组
	 */
	public static String[] titles(List<DisplayItem> ls){
		List<String> ts=new ArrayList<>();
		for(DisplayItem di : ls) ts.add(di.getTitle());
		return ts.toArray(new String[0]);
	}

	/**
	 * 获取列表里的title对应的value，没有则返回null
	 */
	public static String getValue(List<DisplayItem> ls,String title){
		for(DisplayItem di : ls){
			if(di.getTitle().equals(title)){
				return di.getValue();
			}
		}
		return null;
	}
	/**
	 * 获取列表里的value对应的title，没有则返回null
	 */
	public static String getTitle(List<DisplayItem> ls,String value){
		for(DisplayItem di : ls){
			if(di.getValue().equals(value)){
				return di.getTitle();
			}
		}
		return null;
	}
	public String getTitle() {
		return title;
	}
	public String getValue() {
		return value;
	}

	public String getParentValue() {
		return parentValue;
	}
}
